from ch5.AddLayer import AddLayer
from ch5.MulLayer import MulLayer

if __name__ == '__main__':
    apple = 100
    apple_num = 2
    tax = 1.1
    orange = 150
    orange_num = 3
    mul_apple_layer = MulLayer()
    mul_orange_layer = MulLayer()
    add_apple_orange_layer = AddLayer()
    mul_tax_layer = MulLayer()
    # forword
    apple_price = mul_apple_layer.forward(apple, apple_num)
    orange_price = mul_orange_layer.forward(orange, orange_num)
    all_price = add_apple_orange_layer.forward(apple_price, orange_price)
    price = mul_tax_layer.forward(all_price, tax)
    print(price)
    # backword
    dprice = 1
    """
    这里的 dprice 为什么是1呢？

我是这样理解的，我不知道如何使用理论来证明，但是它的意思是：苹果的价格上涨1块钱，那么总价变化dapple元；

橘子的价格上涨1块钱，那么总价变化 dorange元。
    """

    dall_price, dtax = mul_tax_layer.backward(dprice)
    dapple_price, dorange_price = add_apple_orange_layer.backward(dall_price)
    dorange, dorange_num = mul_orange_layer.backward(dorange_price)
    dapple, dapple_num = mul_apple_layer.backward(dapple_price)
    print(dapple_num, dapple, dorange, dorange_num, dtax)
